Camera API এবং Multimedia Integration

Mobile App Development - অ্যান্ড্রয়েড ডেভেলপমেন্ট (Android) - Sensors এবং Hardware Integration
382

Android অ্যাপে Camera API এবং Multimedia Integration ব্যবহার করে ছবি তোলা, ভিডিও রেকর্ড করা, অডিও প্লেব্যাক, এবং আরও অনেক মিডিয়া সম্পর্কিত কার্যক্রম পরিচালনা করা যায়। Android এর Camera API এবং Media API এর মাধ্যমে সহজেই ছবি তোলা, ভিডিও ধারণ করা, এবং অডিও বা ভিডিও ফাইল প্লে করা যায়।

Camera API এবং Multimedia Integration

নিচে Camera API এবং Multimedia Integration নিয়ে বিস্তারিত আলোচনা এবং উদাহরণ দেওয়া হলো:


১. Camera API Integration

Android এ ক্যামেরা ব্যবহার করে ছবি তোলা বা ভিডিও রেকর্ড করার জন্য দুটি প্রধান API আছে:

  • Camera API (প্রাথমিক এবং পুরোনো API)
  • Camera2 API (উন্নত এবং আরও ফ্লেক্সিবল API)

Camera API ব্যবহার করে ছবি তোলা (Legacy API)

Camera API এর মাধ্যমে সহজেই ছবি তোলা যায়। এটি সহজ এবং পুরোনো ডিভাইসগুলোর সাথে সামঞ্জস্যপূর্ণ।

উদাহরণ: Camera Intent ব্যবহার করে ছবি তোলা

Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST_CODE);

Activity এর রেজাল্ট রিসিভ করা

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == CAMERA_REQUEST_CODE && resultCode == RESULT_OK) {
        Bitmap photo = (Bitmap) data.getExtras().get("data");
        // ছবিটি ImageView বা অন্য কোথাও প্রদর্শন করুন
    }
}

Camera2 API ব্যবহার করে ছবি তোলা (Modern API)

Camera2 API উন্নত এবং বেশি ফ্লেক্সিবল। এটি উন্নত ফিচার যেমন ম্যানুয়াল কন্ট্রোল এবং উচ্চ রেজোলিউশনের ছবি ধারণ করতে সক্ষম।

Gradle ডিপেনডেন্সি:

implementation 'androidx.camera:camera-core:1.1.0'
implementation 'androidx.camera:camera-camera2:1.1.0'
implementation 'androidx.camera:camera-lifecycle:1.1.0'
implementation 'androidx.camera:camera-view:1.1.0'

Camera2 API দিয়ে ছবি তোলা (অ্যাডভান্সড উদাহরণ)

CameraManager cameraManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
String cameraId = cameraManager.getCameraIdList()[0];
CameraCharacteristics characteristics = cameraManager.getCameraCharacteristics(cameraId);
StreamConfigurationMap map = characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);

SurfaceTexture texture = textureView.getSurfaceTexture();
texture.setDefaultBufferSize(map.getOutputSizes(SurfaceTexture.class)[0].getWidth(),
                              map.getOutputSizes(SurfaceTexture.class)[0].getHeight());

Surface surface = new Surface(texture);
cameraManager.openCamera(cameraId, new CameraDevice.StateCallback() {
    @Override
    public void onOpened(@NonNull CameraDevice camera) {
        // ক্যামেরা খোলা হলে কাজ সম্পন্ন করুন
    }

    @Override
    public void onDisconnected(@NonNull CameraDevice camera) {
        camera.close();
    }

    @Override
    public void onError(@NonNull CameraDevice camera, int error) {
        camera.close();
    }
}, null);

Camera2 API ব্যবহার করে ক্যামেরা ডিভাইস খোলা, সেটিংস কনফিগার করা, এবং ক্যামেরা ফ্রেম রিসিভ করার প্রক্রিয়া দেখানো হয়েছে।


২. ভিডিও রেকর্ডিং

Android এ ভিডিও রেকর্ড করার জন্য MediaRecorder API ব্যবহার করা হয়। এটি ক্যামেরার সাথে ভিডিও এবং অডিও ক্যাপচার করে একটি ফাইল আউটপুট দেয়।

উদাহরণ: MediaRecorder ব্যবহার করে ভিডিও রেকর্ড করা

MediaRecorder mediaRecorder = new MediaRecorder();

// ক্যামেরা সেটআপ এবং প্রিভিউ দেখানোর জন্য ক্যামেরা ওপেন করুন

mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mediaRecorder.setOutputFile("path/to/output.mp4");

try {
    mediaRecorder.prepare();
    mediaRecorder.start();
} catch (IOException e) {
    e.printStackTrace();
}

উপরের উদাহরণে, MediaRecorder ব্যবহার করে ক্যামেরা এবং মাইক্রোফোন থেকে ভিডিও রেকর্ড করা হয়েছে।


৩. Multimedia Integration

Android এ অডিও এবং ভিডিও প্লেব্যাকের জন্য MediaPlayer API এবং ExoPlayer ব্যবহার করা যায়। এগুলো দিয়ে আপনি অডিও এবং ভিডিও ফাইল প্লে করতে, স্ট্রিমিং করতে, এবং কাস্টমাইজড প্লেব্যাক কন্ট্রোল তৈরি করতে পারেন।

(ক) MediaPlayer API ব্যবহার করে অডিও প্লেব্যাক

MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.sample_audio);
mediaPlayer.start();

MediaPlayer API দিয়ে একটি অডিও ফাইল প্লে করা খুবই সহজ। উপরের উদাহরণে, sample_audio ফাইলটি রিসোর্স ডিরেক্টরি থেকে প্লে করা হয়েছে।

(খ) MediaPlayer ব্যবহার করে ভিডিও প্লেব্যাক

VideoView videoView = findViewById(R.id.video_view);
videoView.setVideoPath("android.resource://" + getPackageName() + "/" + R.raw.sample_video);
videoView.start();

উপরের উদাহরণে VideoView ব্যবহার করে ভিডিও প্লে করা হয়েছে। VideoView একটি সহজ উপায়ে ভিডিও দেখানোর সুবিধা দেয়।

(গ) ExoPlayer API ব্যবহার করে অডিও এবং ভিডিও স্ট্রিমিং

ExoPlayer একটি শক্তিশালী এবং ফ্লেক্সিবল মিডিয়া প্লেয়ার লাইব্রেরি, যা স্ট্রিমিং মিডিয়া এবং কাস্টমাইজড প্লেব্যাকের জন্য ব্যবহৃত হয়।

Gradle ডিপেনডেন্সি:

implementation 'com.google.android.exoplayer:exoplayer:2.15.1'

উদাহরণ: ExoPlayer ব্যবহার করে অডিও/ভিডিও প্লে করা

SimpleExoPlayer player = new SimpleExoPlayer.Builder(this).build();
PlayerView playerView = findViewById(R.id.player_view);
playerView.setPlayer(player);

MediaItem mediaItem = MediaItem.fromUri("https://www.example.com/video.mp4");
player.setMediaItem(mediaItem);
player.prepare();
player.play();

এখানে ExoPlayer দিয়ে একটি ভিডিও URL স্ট্রিম করা হয়েছে এবং PlayerView এর মাধ্যমে ভিডিও প্রদর্শিত হয়েছে।


৪. ক্যামেরা এবং মিডিয়া পারমিশন

Android 6.0+ এর জন্য Runtime Permission ব্যবহৃত হয়। ক্যামেরা, অডিও, এবং স্টোরেজ ব্যবহারের জন্য পারমিশন চাওয়া হয়:

if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, CAMERA_PERMISSION_REQUEST_CODE);
}

৫. Safety এবং Best Practices

  • Runtime Permissions: ক্যামেরা এবং অডিও ব্যবহারের জন্য পারমিশন অবশ্যই runtime এ গ্রহণ করতে হবে।
  • Storage Management: ভিডিও এবং ছবি স্টোর করার জন্য স্টোরেজ ব্যবস্থাপনা সঠিকভাবে করতে হবে।
  • Battery Optimization: মিডিয়া এবং ক্যামেরা অ্যাপ্লিকেশনগুলো বেশি পাওয়ার ব্যবহার করে, তাই পাওয়ার অপ্টিমাইজেশন নিশ্চিত করতে হবে।
  • Error Handling: মিডিয়া প্লেয়ার বা ক্যামেরা যদি ডিভাইসে না থাকে, তবে সঠিকভাবে এটি হ্যান্ডল করতে হবে।

উপসংহার

Camera API এবং Multimedia Integration Android অ্যাপ্লিকেশনে ছবি তোলা, ভিডিও রেকর্ড করা, এবং অডিও/ভিডিও প্লেব্যাক করার জন্য অত্যন্ত কার্যকরী। Camera2 API এবং MediaPlayer বা ExoPlayer API ব্যবহার করে উন্নত ফিচার যোগ করা যায়। সঠিক পারমিশন ব্যবস্থাপনা এবং পাওয়ার অপ্টিমাইজেশন নিশ্চিত করে, একটি কার্যকরী এবং মিডিয়া-সমৃদ্ধ অ্যাপ্লিকেশন তৈরি করা সম্ভব।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...